Class: Gitara::Node::Tab

Inherits:
Base
  • Object
show all
Defined in:
lib/gitara/node/tab.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#add, #ancestor, #call_value, #children=, #chorded, #definition, #definition?, #definition_children, #definition_name, #definition_of?, #definitions, #descendants, #id, #id_as_word, #inspect, #name, #stanza_version, #value, #voiced_as

Instance Attribute Details

#$1($1) ⇒ Object



6
# File 'lib/gitara/node/tab.rb', line 6

has_value :arranger

Instance Method Details

#arrangerObject



6
# File 'lib/gitara/node/tab.rb', line 6

has_value :arranger

#composerObject



7
# File 'lib/gitara/node/tab.rb', line 7

has_value :composer

#instrumentObject



8
# File 'lib/gitara/node/tab.rb', line 8

has_value :instrument

#keyObject



9
# File 'lib/gitara/node/tab.rb', line 9

has_value :key

#max_number_of_voicesObject



17
18
19
# File 'lib/gitara/node/tab.rb', line 17

def max_number_of_voices
  definitions(Node::Bar).map{|bar| bar.note_sets.size}.max
end

#midi_instrumentObject



10
# File 'lib/gitara/node/tab.rb', line 10

has_value :midi_instrument, :default => "acoustic guitar (nylon)"

#playable_childObject



21
22
23
# File 'lib/gitara/node/tab.rb', line 21

def playable_child
  definition_children.last
end

#string_tuningsObject



11
# File 'lib/gitara/node/tab.rb', line 11

has_value :string_tunings

#tempoObject



12
# File 'lib/gitara/node/tab.rb', line 12

has_value :tempo

#timeObject



13
# File 'lib/gitara/node/tab.rb', line 13

has_value :time

#time_signatureObject



25
26
27
# File 'lib/gitara/node/tab.rb', line 25

def time_signature
  @time_signature ||= TimeSignature.new(:value => time || '4/4')
end

#titleObject



14
# File 'lib/gitara/node/tab.rb', line 14

has_value :title

#transpositionObject



15
# File 'lib/gitara/node/tab.rb', line 15

has_value :transposition

#voicesObject



29
30
31
# File 'lib/gitara/node/tab.rb', line 29

def voices
  @voices ||= Array.new(max_number_of_voices){|i| Voice.new(:id => i + 1, :parent => self)}
end